home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Reference / the cmsp digests ('94-'97) / csmp digest Vol 4 No 022 < prev    next >
Text File  |  1996-11-18  |  76KB  |  2,302 lines

  1. C.S.M.P. Digest             Sun, 17 Nov 96       Volume 4 : Issue 22
  2.  
  3. Today's Topics:
  4.  
  5.         Anyone know how to play a big .WAV file on a mac?
  6.         Changing Dialog Fonts
  7.         File System Manager SDK
  8.         How do I open a web page from my application?
  9.         How to share CODE between many CODE rsrc?
  10.         Marketing Shareware
  11.         Q: Virtual Memory on Removables -- How?
  12.         QD3D-68k-windows first?
  13.         Sym. Debugger wont let me step into class member functions
  14.         Trouble with making a Netscape Plug-In for Windows
  15.         Two player game logic.
  16.         Why "MathLib68K (4i-8d).Lib" is needed to call "sin" and "cos"?
  17.         [Q] How to get rid of menu bar ?
  18.         a little problem after using STACKER 1.0
  19.         assembly choices
  20.         clock precision
  21.         displaying pixmap on screen
  22.         parameter block info for cdrom and audio chip
  23.  
  24.  
  25.  
  26. The Comp.Sys.Mac.Programmer Digest is moderated by Mark Aiken
  27. (marka@ee.mcgill.ca).
  28.  
  29. The digest is a collection of article threads from the internet
  30. newsgroups comp.sys.mac.programmer.help, csmp.tools, csmp.misc and
  31. csmp.games. It is designed for people who read news semi-regularly and
  32. want an archive of the discussions.  If you don't know what a
  33. newsgroup is, you probably don't have access to it. Ask your systems
  34. administrator(s) for details. If you don't have access to news, you
  35. may still be able to post messages to the group by using a mail server
  36. like anon.penet.fi (mail help@anon.penet.fi for more information).
  37.  
  38. Each issue of the digest contains one or more sets of articles (called
  39. threads), with each set corresponding to a 'discussion' of a particular
  40. subject.  The articles are not edited; all articles included in this digest
  41. are in their original posted form (as received by our news server at
  42. ee.mcgill.ca).  Article threads are not added to the digest until the last
  43. article added to the thread is at least two weeks old (this is to ensure that
  44. the thread is dead before adding it to the digest).  Article threads that
  45. consist of only one message are generally not included in the digest.
  46.  
  47. The digests can be obtained by email, ftp or through the World Wide Web.
  48.  
  49. If you want to receive the digest by mail, send email to 
  50. majordomo@ee.mcgill.ca with no subject and one of the following commands
  51. as body:
  52.  
  53.     help                        Sends you a summary of commands
  54.     subscribe csmp                      Adds you to the mailing list
  55.     unsubscribe csmp                    Removes you from the list
  56.  
  57. Once you have subscribed, you will automatically receive each new
  58. issue as it is created.
  59.  
  60. Back issues are available by ftp from Info-Mac mirror sites in the
  61. per/csmp subdirectory, e.g.
  62.  
  63.   ftp://sumex-aim.stanford.edu/info-mac/per/csmp/
  64.  
  65. The contents of all back issues can be searched by accessing the
  66. following URL, courtesy of Andrew Barry (ajbarry@ozemail.com.au):
  67.  
  68.     http://marvin.stattech.com.au/search.html
  69.  
  70. They can also be searched through the following URLs, thanks to
  71. Tim Tuck (Tim.Tuck@sensei.com.au):
  72.  
  73.     http://wais.sensei.com.au/searchform.html
  74.     wais://wais.sensei.com.au:210/csmp?
  75.  
  76. -------------------------------------------------------
  77.  
  78. >From tm@iprolink.co.nz (tm.)
  79. Subject: Anyone know how to play a big .WAV file on a mac?
  80. Date: 29 Oct 1996 05:34:53 GMT
  81. Organization: Internet ProLink NZ, Auckland
  82.  
  83. If anyone knows of a mac shareware or freeware app that will play a 7MB
  84. .wav sound file could they please email me?  SoundConverterPro and
  85. SoundEditPro don't work.
  86. Thanks very much,
  87. TM.
  88.  
  89. +++++++++++++++++++++++++++
  90.  
  91. >From Chris Ridd <C.Ridd@imc.exec.nhs.uk>
  92. Date: Thu, 31 Oct 1996 14:38:37 +0000
  93. Organization: NHS Information Management Centre
  94.  
  95. tm. wrote:
  96. > If anyone knows of a mac shareware or freeware app that will play a 7MB
  97. > .wav sound file could they please email me?  SoundConverterPro and
  98. > SoundEditPro don't work.
  99.  
  100. SoundApp?
  101.  
  102. BTW, by "big" do you mean "bigger than the amount of RAM my Mac has
  103. got"? Turning on virtual memory temporarily might help if this is the
  104. case.
  105.  
  106. Chris
  107.  
  108. +++++++++++++++++++++++++++
  109.  
  110. >From Chelly Green <chelly@eden.com>
  111. Date: Thu, 31 Oct 1996 19:04:57 -0600
  112. Organization: -
  113.  
  114. Chris Ridd wrote:
  115. > tm. wrote:
  116. > >
  117. > > If anyone knows of a mac shareware or freeware app that will play a 7MB
  118. > > .wav sound file could they please email me?  SoundConverterPro and
  119. > > SoundEditPro don't work.
  120. > SoundApp?
  121. > BTW, by "big" do you mean "bigger than the amount of RAM my Mac has
  122. > got"? Turning on virtual memory temporarily might help if this is the
  123. > case.
  124.  
  125. Yeah, make the sound play with lots of clicks and pops. This is the Mac
  126. OS we're talking about! Virtual memory. Ha! What were you thinking?!?
  127.  
  128. Anyway, why should the sound be loaded into memory, only to get paged
  129. back to disk? Why not just read it a little bit at a time from disk, as
  130. it is needed?
  131. -- 
  132. Chelly Green | chelly@eden.com | C++ - http://www.eden.com/~chelly
  133.  
  134. +++++++++++++++++++++++++++
  135.  
  136. >From ajmas@worldnet.fr (Andre-John Mas)
  137. Date: Fri, 1 Nov 1996 14:26:05 +0100
  138. Organization: SCT / Worldnet - Internet Provider & Information Exchange - Paris, France
  139.  
  140. tm. <tm@iprolink.co.nz> wrote:
  141.  
  142. > If anyone knows of a mac shareware or freeware app that will play a 7MB
  143. > .wav sound file could they please email me?  SoundConverterPro and
  144. > SoundEditPro don't work.
  145. > Thanks very much,
  146. > TM.
  147.  
  148. Quicktime 2.5 along with its movie player might do the trick. Yep,
  149. Quicktime 2.5 does wav files.  Though how it handles very large wav file
  150. is another question, if it is smart then it will have implemented a play
  151. from disk routine.
  152.  
  153. Now all we need something that will support all the other crypric file
  154. formats ;)
  155.  
  156. Tell me how it goes.
  157.  
  158. Andre-John
  159.  
  160. >------------------------------  ,,,, --------------------------------<
  161.           Andre-John MAS         - -     Smail: 821, Chemin du Riou   
  162.    Email : ajmas@worldnet.fr      L        06140 Vence, France      
  163. >------------------------------   -   --------------------------------<
  164.  Tel/Fax  : (00)(33)0493.24.64.90     http://myweb.worldnet.fr/~ajmas/ 
  165.  
  166. +++++++++++++++++++++++++++
  167.  
  168. >From davegeri@iserv.net (Dave Jagger)
  169. Date: Sun, 03 Nov 1996 10:36:56 -0500
  170. Organization: Iserv.net, Grand Rapids, MI, USA
  171.  
  172. In article <32794CAE.29CC@eden.com>, chelly@eden.com wrote:
  173.  
  174. > Chris Ridd wrote:
  175. > > 
  176. > > tm. wrote:
  177. > > >
  178. > > > If anyone knows of a mac shareware or freeware app that will play a 7MB
  179. > > > .wav sound file could they please email me?  SoundConverterPro and
  180. > > > SoundEditPro don't work.
  181. > > 
  182. > > SoundApp?
  183. > > 
  184. > > BTW, by "big" do you mean "bigger than the amount of RAM my Mac has
  185. > > got"? Turning on virtual memory temporarily might help if this is the
  186. > > case.
  187. > Yeah, make the sound play with lots of clicks and pops. This is the Mac
  188. > OS we're talking about! Virtual memory. Ha! What were you thinking?!?
  189. > Anyway, why should the sound be loaded into memory, only to get paged
  190. > back to disk? Why not just read it a little bit at a time from disk, as
  191. > it is needed?
  192. > -- 
  193. > Chelly Green | chelly@eden.com | C++ - http://www.eden.com/~chelly
  194.  
  195. Simply increase the applications memory size in the Get Info box and
  196. you're set! SoundApp sound work just fine. I use it all the time to play
  197. HUGE sound files while I'm on he air at the radio station I work for.
  198.  
  199. Dave Jagger
  200. Lite Rock 95.7
  201. WLHT
  202. Grand Rapids, MI
  203.  
  204. ________________
  205. Do you believe in Macintosh? Learn how to help the cause by subscribing to the "EvangeList" listserver! Send email to: <evangelist@macway.com> or go to:
  206. <http://www.solutions.apple.com/ListAdmin/>.
  207.  
  208. ---------------------------
  209.  
  210. >From herzberg@humnet.ucla.edu (Larry Herzberg)
  211. Subject: Changing Dialog Fonts
  212. Date: Mon, 28 Oct 1996 13:54:42 -0800
  213. Organization: UCLA
  214.  
  215. Is there a good way to change the font in a dialog with editable text
  216. fields?  I've tried the following approach, which works fine on
  217. pre-PowerPC macs, but recently I've been getting some weird errors on the
  218. newer systems.
  219.  
  220.  
  221. dialogTEH = myDialogPeek->textH;
  222. GetFNum( "\pKonstanz", &fontNum );
  223. if (fontNum == 0)
  224.     DoAlert("\pUnable to find Konstanz Font!");  
  225. ((TERec *)*dialogTEH)->txFont = fontNum;
  226. InvalRect( &((TERec *)*dialogTEH)->viewRect );
  227.  
  228. +++++++++++++++++++++++++++
  229.  
  230. >From herzberg@humnet.ucla.edu (Larry Herzberg)
  231. Date: Wed, 30 Oct 1996 16:00:02 -0800
  232. Organization: UCLA
  233.  
  234. In article <msbishop-2910960834230001@news.zippo.com>,
  235. msbishop@ix.netcom.com (Matt Bishop) wrote:
  236.  
  237. > In article <herzberg-2810961354420001@ts17-15.wla.ts.ucla.edu>,
  238. > herzberg@humnet.ucla.edu (Larry Herzberg) wrote:
  239. > > Is there a good way to change the font in a dialog with editable text
  240. > > fields?  I've tried the following approach, which works fine on
  241. > > pre-PowerPC macs, but recently I've been getting some weird errors on the
  242. > > newer systems.
  243. > > 
  244. > > 
  245. > > dialogTEH = myDialogPeek->textH;
  246. > > GetFNum( "\pKonstanz", &fontNum );
  247. > > if (fontNum == 0)
  248. > >     DoAlert("\pUnable to find Konstanz Font!");  
  249. > > ((TERec *)*dialogTEH)->txFont = fontNum;
  250. > > InvalRect( &((TERec *)*dialogTEH)->viewRect );
  251. > I wish it would work, too.  Have you tried creating an 'ictb' resource to
  252. > change the font?  There's a description of the 'ictb' resource in
  253. > Macintosh Toolbox Essentials or you can use Resourcerer.  I don't know of
  254. > a ResEdit extension to create/edit 'ictb' resources.
  255.  
  256. I'm not familiar with this resource type, Matt.  In my version of Think
  257. Reference, it is listed as a "dialog item list color table".  How is such
  258. a resource relevant to changing the font in the editable text fields of a
  259. dialog?
  260.  
  261. +++++++++++++++++++++++++++
  262.  
  263. >From microcsm@goldinc.com (David Blache)
  264. Date: Sat, 02 Nov 1996 01:40:56 -0600
  265. Organization: STAZ Software, Inc.
  266.  
  267. In article <herzberg-2810961354420001@ts17-15.wla.ts.ucla.edu>,
  268. herzberg@humnet.ucla.edu (Larry Herzberg) wrote:
  269.  
  270. > Is there a good way to change the font in a dialog with editable text
  271. > fields?  I've tried the following approach, which works fine on
  272. > pre-PowerPC macs, but recently I've been getting some weird errors on the
  273. > newer systems.
  274. > dialogTEH = myDialogPeek->textH;
  275. > GetFNum( "\pKonstanz", &fontNum );
  276. > if (fontNum == 0)
  277. >     DoAlert("\pUnable to find Konstanz Font!");  
  278. > ((TERec *)*dialogTEH)->txFont = fontNum;
  279. > InvalRect( &((TERec *)*dialogTEH)->viewRect );
  280.  
  281. I have a procedure I use in most of my dialogs that may help you.  It is
  282. written in Pascal, and is in no way perfect; but you can try it out if you
  283. want.
  284.  
  285.  procedure SetDialogFont (theDialog: DialogPtr; theFont, theSize: Integer;
  286. theFace: Style);
  287.    { Use this procedure to set the font, size, and style of a dialog font. }
  288.    { Note that the dialog must have been previously loaded into memory }
  289.    { before calling this routine.  Also, the dialog will not retain it's font }
  290.    { if you close it after calling this routine.  The font etc. are only
  291. set as long as you }
  292.    { keep the dialog in memory. }
  293.   var
  294.    iType: Integer;
  295.    iHandle: Handle;
  296.    iRect: Rect;
  297.    myFontInfo: FontInfo;
  298.    i: Integer;
  299.    theControl: ControlHandle;
  300.    theTitle: Str255;
  301.    theRefCon: LongInt;
  302.    controlType: Integer;
  303.  begin
  304.    { Set the port }
  305.   SetPort(theDialog);
  306.  
  307.    { Set the font }
  308.   TextFont(theFont);
  309.   TextSize(theSize);
  310.   TextFace(theFace);
  311.  
  312.    { Set the dialog font }
  313.   GetFontInfo(myFontInfo);
  314.   with DialogPeek(theDialog)^.textH^^ do
  315.    begin
  316.     txFont := theFont;
  317.     txSize := theSize;
  318.     txFace := theFace;
  319.     fontAscent := myFontInfo.ascent;
  320.     lineHeight := myFontInfo.ascent + myFontInfo.descent + myFontInfo.leading;
  321.    end;
  322.  
  323.    { Set the dialog's controls to the current font }
  324.   for i := 1 to CountDITL(theDialog) do
  325.    begin
  326.     GetDItem(theDialog, i, iType, iHandle, iRect);
  327.     case iType of
  328.      4..7:  { = ctrlItem + btnCtrl, chkCtrl, radCtrl, or resCtrl }
  329.       begin
  330.        GetCTitle(ControlHandle(iHandle), theTitle);
  331.        theRefCon := GetCRefCon(ControlHandle(iHandle));
  332.        controlType := iType - ctrlItem;
  333.        case controlType of
  334.        btnCtrl: 
  335.        begin
  336.        theControl := NewControl(theDialog, iRect, theTitle, true, 0, 0, 1,
  337. pushButProc + useWFont, theRefCon);
  338.        DisposeControl(ControlHandle(iHandle));
  339.        SetDItem(theDialog, i, iType, Handle(theControl), iRect);
  340.        end;
  341.        chkCtrl: 
  342.        begin
  343.        theControl := NewControl(theDialog, iRect, theTitle, true, 0, 0, 1,
  344. checkBoxProc + useWFont, theRefCon);
  345.        DisposeControl(ControlHandle(iHandle));
  346.        SetDItem(theDialog, i, iType, Handle(theControl), iRect);
  347.        end;
  348.        radCtrl: 
  349.        begin
  350.        theControl := NewControl(theDialog, iRect, theTitle, true, 0, 0, 1,
  351. radioButProc + useWFont, theRefCon);
  352.        DisposeControl(ControlHandle(iHandle));
  353.        SetDItem(theDialog, i, iType, Handle(theControl), iRect);
  354.        end;
  355.        otherwise
  356.        ;
  357.        end;
  358.       end;
  359.      otherwise
  360.       ;
  361.     end;
  362.    end;
  363.  end;
  364.  
  365. ---------------------------
  366.  
  367. >From Jeff Laing <jeffl@diac.com>
  368. Subject: File System Manager SDK
  369. Date: Wed, 30 Oct 1996 07:55:00 -0700
  370. Organization: Tristero Computer Systems
  371.  
  372. I have the vaguest idea of a project that would involve using the
  373. File System Manager SDK recently included on Develop 25.
  374.  
  375. My question:  Is the FSM re-entrant?  ie, could I have my own File
  376. System handling requests by making its own call to a standard HFS
  377. file system for a different volume?  Or do I have to reinvent the
  378. guts of the high-level calls and use Device Manager calls instead?
  379.  
  380. Email replies preferred...
  381.  
  382. Jeff
  383.  
  384. +++++++++++++++++++++++++++
  385.  
  386. >From jumplong@aol.com (Jump Long)
  387. Date: 2 Nov 1996 22:46:24 -0500
  388. Organization: America Online, Inc. (1-800-827-6364)
  389.  
  390. Jeff Laing wrote:
  391. >I have the vaguest idea of a project that would involve using
  392. >the File System Manager SDK recently included on Develop 25.
  393. >
  394. >My question:  Is the FSM re-entrant?  ie, could I have my own
  395. >File System handling requests by making its own call to a
  396. >standard HFS file system for a different volume?  Or do I have
  397. >to reinvent the guts of the high-level calls and use Device
  398. >Manager calls instead?
  399.  
  400. FSM, like the File Manager, is single threaded and not reentrant. A file
  401. system cannot make File Manager calls while handling a request from the
  402. File Manager.
  403.  
  404. - Jim Luther
  405.  
  406. ---------------------------
  407.  
  408. >From "Joey Edelstein" <joeyhd@netvision.net.il>
  409. Subject: How do I open a web page from my application?
  410. Date: 3 Nov 1996 09:15:50 GMT
  411. Organization: NetVision LTD.
  412.  
  413. Hi!
  414. I am writing a simple Mac application and I would like to add a feature
  415. that opens my home page from within my application.  Is there a simple way
  416. to do this?  
  417. please reply by Email in addition to the news group as I do not read news
  418. frequently :)
  419.  
  420.     ThanX
  421.         Joey
  422.  
  423. -- 
  424.          \\|//
  425.          (o o)
  426. *****oOOo*( )*oOOo**************************************************
  427.        Joey Edelstein                Email: joeyhd@netvision.net.il   
  428.        Heshev Development Ltd.      
  429. **************************************************oOOo*( )*oOOo*****
  430.                                                       (o o)
  431.                                                       //|\\
  432.  
  433.  
  434. +++++++++++++++++++++++++++
  435.  
  436. >From nospam.djembe@sprynet.com.nospam (Mike Cohen)
  437. Date: Sun, 03 Nov 1996 15:41:13 -0700
  438. Organization: ISIS International
  439.  
  440. In article <01bbc967$c6be5f00$34785ac2@JoeyPc.netvision.net.il>,
  441. "Joey Edelstein" <joeyhd@netvision.net.il> wrote:
  442.  
  443. >Hi!
  444. >I am writing a simple Mac application and I would like to add a feature
  445. >that opens my home page from within my application.  Is there a simple way
  446. >to do this?  
  447. >please reply by Email in addition to the news group as I do not read news
  448. >frequently :)
  449. >
  450.  
  451. Get a copy of the Internet Config programmer's kit (you'll find a pointer
  452. to it in your Internet Config package). It has a function you can call that
  453. will launch the appropriate web browser and go to the URL you supply.
  454.  
  455.  
  456. [Mike Cohen | djembe@pobox.com | http://pobox.com/~djembe (personal)]
  457. [           | isis@pobox.com   | http://www.isis-intl.com/ (company)]
  458. [     Harry Browne for President - http://www.harrybrowne96.org     ]
  459. [     Fight California's Prop. 211 - http://www.tafl.com/index.html ]
  460. *** JUNK MAIL NOT ACCEPTED - I CHANGED MY RETURN ADDRESS SO SPAMMERS
  461. *** CAN'T GET MY EMAIL ADDRESS FROM MY POSTS. IF YOU WISH TO REPY,
  462. *** COPY MY EMAIL ADDRESS FROM MY SIGNATURE
  463.  
  464. +++++++++++++++++++++++++++
  465.  
  466. >From SouthSide@kagi.com (Bob Bradley)
  467. Date: Sun, 03 Nov 1996 13:36:46 -0800
  468. Organization: SPC
  469.  
  470. In article <01bbc967$c6be5f00$34785ac2@JoeyPc.netvision.net.il>, "Joey
  471. Edelstein" <joeyhd@netvision.net.il> wrote:
  472.  
  473. > I am writing a simple Mac application and I would like to add a feature
  474. > that opens my home page from within my application.  Is there a simple way
  475. > to do this?  
  476. > please reply by Email in addition to the news group as I do not read news
  477. > frequently :)
  478.  
  479. Use Internet Config. Just give the URL to Internet Config via ICLaunchURL
  480. and it will do all the work for you.
  481.  
  482. ---------------------------
  483.  
  484. >From cbrunet@geocities.com (Charles Brunet)
  485. Subject: How to share CODE between many CODE rsrc?
  486. Date: Thu, 31 Oct 1996 22:39:47 -0500
  487. Organization: Universite Laval
  488.  
  489. I have an application who works with plug-ins. I'd like to have some functions
  490. accessibles from my main application AND my plugins. Is it possible? If think
  491. about functions to write text in my window. Compiling them in each Plug increase
  492. the size of my application.
  493.  
  494. Have you some ideas?
  495.  
  496. (please, reply by eMail)
  497.  
  498. Thanks,
  499.  
  500. -- 
  501. NAME  : Charles Brunet      (I live in Canada, I speak French)
  502. EMAIL : <cbrunet@geocities.com>
  503. WEB   : <http://www.geocities.com/SiliconValley/1029/>
  504.  
  505. +++++++++++++++++++++++++++
  506.  
  507. >From devon@onyx-tech.com (Devon Hubbard)
  508. Date: Sat, 02 Nov 1996 11:01:25 -0700
  509. Organization: Onyx Technology, Inc.
  510.  
  511. In article <19961031223947112239@ppp-a6.ulaval.ca>, cbrunet@geocities.com
  512. (Charles Brunet) wrote:
  513.  
  514. >I have an application who works with plug-ins. I'd like to have some functions
  515. >accessibles from my main application AND my plugins. Is it possible? If think
  516. >about functions to write text in my window. Compiling them in each Plug
  517. >increase the size of my application.
  518. >
  519. >Have you some ideas?
  520.  
  521. Charles,
  522.  
  523. First, what environment are you using to develop with?  A very easy way to
  524. achieve what you want is to build a code resource with a main() entry
  525. point that returns a table of procPtrs to the routines in the code
  526. resource.  So your main application and plugins will read in the CODE
  527. resource and call into it with something like this.
  528.  
  529.    // define things initially like this
  530.    long main(MyTablePtr tablePtr, long version)
  531.  
  532.    // Ptr to a function returning long
  533.    typedef  long (*LFuncPtr)(CIncludesTablePtr, long);
  534.  
  535. ....
  536.  
  537.    // Load and call into the code resource with something like this
  538.    theResource = Get1Resource(type, id);
  539.  
  540.    if (theResource)
  541.       {
  542.       DetachResource(theResource);           // remove it from the rsrc map
  543.       MoveHHi( (Handle) theResource);        // get it out of the way as
  544. much as 
  545.                                              // possible
  546.       HLock((Handle)theResource);            // lock it down!
  547.       theCode = (LFuncPtr)*theResource;      // get ptr to actual code
  548.  
  549.       err = (*theCode)(cincludesPtr, version);// call the routine giving it 
  550.                                              // MyTablePtr
  551.       if (err)
  552.          {
  553.          HUnlock((Handle)theResource);
  554.          DisposHandle((Handle)theResource); // get rid of it, we canπt use
  555.                                             // it now
  556.          }
  557.       }
  558.    else
  559.       err = ResError();
  560.  
  561. - -------
  562.  
  563. You load the resource then jump into the main entry point which executes
  564. code that fills in the MyTablePtr with proc pointers to routines in that
  565. code resource.  There's neat little macros you can create to call routines
  566. based off this table.  An example might look like...
  567.  
  568.  
  569. typedef  void        (*CopyStringProcDef)( uchar *, uchar *);
  570.  
  571. typedef  struct {
  572.    long                    clibVersion;
  573.  
  574.    CopyStringProcDef       CopyStringProc;
  575.    // add more 
  576.  
  577. } MyTableRec, *MyTablePtr, **MyTableHandle;
  578.  
  579. #define  CopyString(a,b)   (gTablePtr->CopyStringProc)(a,b)
  580.  
  581.  
  582. Then in your code you use CopyString() just as if it's any other callable
  583. routine.  The loading code sets up 'gTablePtr' that the macro expanded to
  584. and uses.  Make sure you have loaded and initialized gTablePtr before
  585. making a call to any routine based off that table though.
  586.  
  587. I hope I haven't missed anything and this gives you an idea of where to
  588. start.  If you have specific questions about the typedefs, structs, macros
  589. or building the code resource, let me know.  I'd be happy to help.
  590.  
  591. Cheers,
  592. dEVoN
  593.  
  594. - ----------------------------------------------------------------------
  595. Devon Hubbard                                       Onyx Technology, Inc
  596. Silicon Pilot                                      support@onyx-tech.com
  597. devon@onyx-tech.com                            http://www.onyx-tech.com/
  598.           Visit our web site for fully a functional demo of QC
  599.  
  600. +++++++++++++++++++++++++++
  601.  
  602. >From devon@onyx-tech.com (Devon Hubbard)
  603. Date: Sat, 02 Nov 1996 11:05:01 -0700
  604. Organization: Onyx Technology, Inc.
  605.  
  606. In article <devon-0211961101260001@cust75.max1.phoenix.az.ms.uu.net>,
  607. devon@onyx-tech.com (Devon Hubbard) wrote:
  608.  
  609. >   // Ptr to a function returning long
  610. >   typedef  long (*LFuncPtr)(CIncludesTablePtr, long);
  611.  
  612. Whoops.  In my previous posting, the snippet above where
  613. 'CIncludesTablePtr' is used in the typedef should read 'MyTablePtr'. 
  614. That's what I get for quickly copy/pasting to create sample code.  Sorry
  615. folks.
  616.  
  617. dEVoN
  618.  
  619. ---------------------------
  620.  
  621. >From gga@it.ntu.edu.au (Giles Alexander)
  622. Subject: Marketing Shareware
  623. Date: 4 Nov 1996 02:13:28 GMT
  624. Organization: Northern Territory University
  625.  
  626. Hi,
  627.  
  628. I was wondering if anyone has any tips for marketing shareware?
  629.  
  630. Once you've created a web page for it and posted it to the major 
  631. archives, are there any good reliabel ways of letting people know that 
  632. its available?
  633.  
  634. TIA,
  635. Giles Alexander
  636.  
  637. --
  638. giles@kagi.com                          | If builders built buildings the way
  639.                                         | programmers write programs, the
  640. Check out Note:                         | first woodpecker that comes along
  641. http://www.ozemail.com.au/~notesoft/    | would destroy all of civilisation.
  642.  
  643. +++++++++++++++++++++++++++
  644.  
  645. >From doverton@iglou.com (Dave Overton)
  646. Date: 4 Nov 1996 14:16:03 GMT
  647. Organization: NETCOM Network Operations
  648.  
  649. Send mail to Ric Ford at www.macintouch.com
  650. or MacResource page at www.macresource.pair.com
  651. about your product. They may publish it. Also the standard mac magazines.
  652. MacWeek, MacUser, MacWorld come to mind as having Web pages etc.
  653. Dave Overton
  654.  
  655.  
  656.  
  657. In article <55jjg8$3oc@pellew.ntu.edu.au>, gga@it.ntu.edu.au (Giles
  658. Alexander) wrote:
  659.  
  660. > Hi,
  661. > I was wondering if anyone has any tips for marketing shareware?
  662. > Once you've created a web page for it and posted it to the major 
  663. > archives, are there any good reliabel ways of letting people know that 
  664. > its available?
  665. > TIA,
  666. > Giles Alexander
  667. > --
  668. > giles@kagi.com                          | If builders built buildings the way
  669. >                                         | programmers write programs, the
  670. > Check out Note:                         | first woodpecker that comes along
  671. > http://www.ozemail.com.au/~notesoft/    | would destroy all of civilisation.
  672.  
  673. ---------------------------
  674.  
  675. >From domjan@inf.ethz.ch (Hans Domjan)
  676. Subject: Q: Virtual Memory on Removables -- How?
  677. Date: Tue, 29 Oct 1996 12:31:10 +0100
  678. Organization: Swiss Federal Institute of Technology, Inst. for Computer Systems
  679.  
  680. By default, the memory control panel is not able to allocate virtual
  681. memory on removable drives (e.g. SyQuest).
  682. Some long time ago I read about a modification of the memory control
  683. panel, that can be done with resedit and that enables VM on removables.
  684. Unfortunately I do not have the docu any more.
  685. Could anyone help me?
  686.  
  687. Yours:
  688.    Hans Domjan
  689.  
  690. P.S.: e-mail responses preferred!
  691.  
  692. - --------------------------------------------------------------------------
  693. |   ETH Zurich -  Swiss Federal Institute of Technology                    |
  694. |--------------------------------------------------------------------------|
  695. |   Hans Domjan                          Phone:    +41 1 632 73 44         |
  696. |   Institute for Computer Systems       Fax:      +41 1 632 13 07         |
  697. |   ETH-Zentrum, RZ H10                  domjan@inf.ethz.ch, hans@acm.org  |
  698. |   CH-8092 Zuerich                      http://www-cs.inf.ethz.ch/~domjan |
  699. |   Switzerland                 --> NEW: Sign my Guestbook !!!             |
  700. ============================================================================
  701.  
  702. +++++++++++++++++++++++++++
  703.  
  704. >From jumplong@aol.com (Jump Long)
  705. Date: 2 Nov 1996 22:42:34 -0500
  706. Organization: America Online, Inc. (1-800-827-6364)
  707.  
  708. Hans Domjan wrote:
  709. >By default, the memory control panel is not able to allocate
  710. >virtual memory on removable drives (e.g. SyQuest). Some long
  711. >time ago I read about a modification of the memory control
  712. >panel, that can be done with resedit and that enables VM on
  713. >removables. Unfortunately I do not have the docu any more. Could
  714. >anyone help me?
  715.  
  716. Nope, there's not a way to hack this. The only way to solve this is to get
  717. a driver for your ejectable media that makes it non-ejectable.
  718.  
  719. - Jim Luther
  720.  
  721. +++++++++++++++++++++++++++
  722.  
  723. >From scott@www.curtin.edu.au (Scott Kevill)
  724. Date: Mon, 04 Nov 1996 02:37:45 +0800
  725. Organization: Curtin University of Technology    
  726.  
  727. In article <55h4ba$mb1@newsbf02.news.aol.com>, jumplong@aol.com (Jump
  728. Long) wrote:
  729.  
  730. :Hans Domjan wrote:
  731. :>By default, the memory control panel is not able to allocate
  732. :>virtual memory on removable drives (e.g. SyQuest). Some long
  733. :>time ago I read about a modification of the memory control
  734. :>panel, that can be done with resedit and that enables VM on
  735. :>removables. Unfortunately I do not have the docu any more. Could
  736. :>anyone help me?
  737. :
  738. :Nope, there's not a way to hack this. The only way to solve this is to get
  739. :a driver for your ejectable media that makes it non-ejectable.
  740. :
  741.  
  742. I know I've downloaded an extension in the past that allowed this. I'm
  743. pretty sure I used it for VM on a 44 meg Syquest (yes, *very* slow)
  744. cartridge.
  745.  
  746. Scott Kevill
  747. scott@www.curtin.edu.au
  748.  
  749. :- Jim Luther
  750.  
  751. ---------------------------
  752.  
  753. >From "Thomas L. Ferrell" <ferrelltl@ornl.gov>
  754. Subject: QD3D-68k-windows first?
  755. Date: 2 Nov 1996 01:45:41 GMT
  756. Organization: Oak Ridge National Lab
  757.  
  758. Anyone know why Apple has QuickDraw 3D for Windows 95 and Windows NT (as 
  759. well as for Power Macs), but not for 68k Macs?
  760. tom
  761.  
  762.  
  763.  
  764. +++++++++++++++++++++++++++
  765.  
  766. >From nospam.djembe@sprynet.com.nospam (Mike Cohen)
  767. Date: Sun, 03 Nov 1996 15:41:16 -0700
  768. Organization: ISIS International
  769.  
  770. In article <jwbaxter-0211960946410001@jwbaxter.olympus.net>,
  771. jwbaxter@olympus.net (John W. Baxter) wrote:
  772.  
  773. >QD GX does run on 68K...it uses integer arithmetic (in the disguise of
  774. >"fixed point") to make that possible.  At the cost of some really
  775. >odd-looking interface code.
  776. >
  777.  
  778. And it's *PAINFULLY* slow on a 68K. I was running it on my Duo 270c to test
  779. & develop some code and it was quite painful.
  780.  
  781.  
  782. [Mike Cohen | djembe@pobox.com | http://pobox.com/~djembe (personal)]
  783. [           | isis@pobox.com   | http://www.isis-intl.com/ (company)]
  784. [     Harry Browne for President - http://www.harrybrowne96.org     ]
  785. [     Fight California's Prop. 211 - http://www.tafl.com/index.html ]
  786. *** JUNK MAIL NOT ACCEPTED - I CHANGED MY RETURN ADDRESS SO SPAMMERS
  787. *** CAN'T GET MY EMAIL ADDRESS FROM MY POSTS. IF YOU WISH TO REPY,
  788. *** COPY MY EMAIL ADDRESS FROM MY SIGNATURE
  789.  
  790. +++++++++++++++++++++++++++
  791.  
  792. >From davep@best.com (Dave Polaschek)
  793. Date: Sat, 02 Nov 1996 09:36:40 -0600
  794. Organization: Polaschek Publishing
  795.  
  796. In article <55e945$mr5@stc06.ctd.ornl.gov>, "Thomas L. Ferrell"
  797. <ferrelltl@ornl.gov> wrote:
  798.  
  799. > Anyone know why Apple has QuickDraw 3D for Windows 95 and Windows NT (as 
  800. > well as for Power Macs), but not for 68k Macs?
  801. > tom
  802.  
  803. 68K Macs were seen as not having enough horsepower to keep up with the
  804. processing demands of QD3D.
  805.  
  806. -DaveP
  807.  
  808. -- 
  809. Dave Polaschek home:davep@best.com work:dpolasch@leonardo.lmt.com
  810.  
  811. ---------------------------
  812.  
  813. >From peter.ferrett@sci.monash.edu.au (Peter Ferrett)
  814. Subject: Sym. Debugger wont let me step into class member functions
  815. Date: 2 Nov 1996 01:45:04 GMT
  816. Organization: Monash University
  817.  
  818.  
  819.  
  820. Hi,
  821.  
  822. Just started using Symantec vs. 8 release 5 after having used version
  823. 6 and 7 for a few years.  However am having problems with the 
  824. debugger.  The debugger wont step into class member functions
  825.  
  826. i.e. wont step into a function like:
  827.  
  828.          class->func();
  829.  
  830.  
  831. However, it will step into a non class function.  It will also break
  832. in a class member function when you set a breakpoint at a line within
  833. the function and hit go.
  834.  
  835.  
  836. Machine:  LC 630 (aka quadra 630) with DayStar powercard 601
  837. running at 66MZ.
  838. Compiler:  Symantec vs. 8 release 5.  PPC C++ translater.
  839. RAM:  20 MB inbuilt.
  840. Settings:  Tried just about all permutations and combinations for
  841. the option and preferences
  842.  
  843. Has this happened to anyone else? or can you please help in
  844. any way?
  845.  
  846.  
  847. thanks,
  848.  
  849. PF
  850.  
  851. -- 
  852. Peter Ferrett
  853. peter.ferrett@sci.monash.edu.au
  854.  
  855. +++++++++++++++++++++++++++
  856.  
  857. >From dani richard <richard@capmed.com>
  858. Date: Mon, 04 Nov 1996 09:04:24 -0600
  859. Organization: CAPMed
  860.  
  861. Peter Ferrett wrote:
  862. > Hi,
  863. > Just started using Symantec vs. 8 release 5 after having used version
  864. > 6 and 7 for a few years.  However am having problems with the
  865. > debugger.  The debugger wont step into class member functions
  866. > i.e. wont step into a function like:
  867. >          class->func();
  868. > However, it will step into a non class function.  It will also break
  869. > in a class member function when you set a breakpoint at a line within
  870. > the function and hit go.
  871.  
  872. > Has this happened to anyone else? or can you please help in
  873. > any way?
  874. > thanks,
  875. > PF
  876.  
  877. What happens to you when you do?
  878.  
  879. I try:
  880.  
  881. gMyApplication->Run();
  882.  
  883. Any my PowerPC 7100/80 goes dead.
  884.  
  885. Does this mean Symantec debugger is brain dead?
  886.  
  887. I have put a query in to Symantec a week ago.
  888. They said they were working on it and will get back.
  889.  
  890. Dani Richard
  891. richard@capmed.com
  892.  
  893. +++++++++++++++++++++++++++
  894.  
  895. >From peter.ferrett@sci.monash.edu.au (Peter Ferrett)
  896. Date: 5 Nov 1996 06:11:30 GMT
  897. Organization: Monash University
  898.  
  899. In article <327E05F8.6D0C@capmed.com>, dani richard <richard@capmed.com> wrote:
  900.  
  901. >Peter Ferrett wrote:
  902. >> 
  903. >> Hi,
  904. >> 
  905. >> Just started using Symantec vs. 8 release 5 after having used version
  906. >> 6 and 7 for a few years.  However am having problems with the
  907. >> debugger.  The debugger wont step into class member functions
  908. >> 
  909. >> i.e. wont step into a function like:
  910. >> 
  911. >>          class->func();
  912. >> 
  913. >> However, it will step into a non class function.  It will also break
  914. >> in a class member function when you set a breakpoint at a line within
  915. >> the function and hit go.
  916. >
  917. >> Has this happened to anyone else? or can you please help in
  918. >> any way?
  919. >> 
  920. >> thanks,
  921. >> 
  922. >> PF
  923. >> 
  924. >
  925. >What happens to you when you do?
  926. >
  927. >I try:
  928. >
  929. >gMyApplication->Run();
  930. >
  931. >Any my PowerPC 7100/80 goes dead.
  932. >
  933. >Does this mean Symantec debugger is brain dead?
  934. >
  935. >I have put a query in to Symantec a week ago.
  936. >They said they were working on it and will get back.
  937. >
  938. >Dani Richard
  939. >richard@capmed.com
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946. Nope,  it doesn't really crash.  I can still move the mouse around. 
  947. Essentially nothing happens - can't choose go, step, etc. from
  948. the debugging menu.  Cant switch to other applications.  The
  949. only way out is to break into macsbug and use the escape
  950. command.
  951.  
  952. btw running 7.5.5.  Havent tried any other version - might
  953. try earlier system software and see what that does.
  954.  
  955. PF
  956.  
  957. -- 
  958. Peter Ferrett
  959. peter.ferrett@sci.monash.edu.au
  960.  
  961. +++++++++++++++++++++++++++
  962.  
  963. >From peter.ferrett@sci.monash.edu.au (Peter Ferrett)
  964. Date: 5 Nov 1996 06:24:55 GMT
  965. Organization: Monash University
  966.  
  967. In article <dstone-051096090851@csgmac.chem.utoronto.ca>,
  968. dstone@chem.utoronto.ca (David Stone) wrote:
  969.  
  970. >In article <peter.ferrett-0211961248370001@mts01-modem09.cc.monash.edu.au>,
  971. >peter.ferrett@sci.monash.edu.au (Peter Ferrett) wrote:
  972. >> 
  973. >> 
  974. >> 
  975. >> Hi,
  976. >> 
  977. >> Just started using Symantec vs. 8 release 5 after having used version
  978. >> 6 and 7 for a few years.  However am having problems with the 
  979. >> debugger.  The debugger wont step into class member functions
  980. >> 
  981. >> i.e. wont step into a function like:
  982. >> 
  983. >>          class->func();
  984. >> 
  985. >
  986. >Silly question, but is the source file containing the actual code for
  987. >func() (and any superclass source files) flagged for debugging? That
  988. >would give the effect you describe.
  989. >
  990. >Dave Stone
  991.  
  992.  
  993. No, not really a silly question - the answer often ends up being
  994. something simple that's been forgotten such as this.  The source
  995.  file *is* flagged for debugging in this case though.
  996.  
  997. Perhaps I should have expanded a bit more:
  998.  
  999. The problems occurs in *all* projects I've tested it on
  1000. so far (including the example projects from the cd).
  1001.  
  1002. The code appears to freeze when I attempt to step
  1003. into a function.  Although the mouse can be moved I
  1004. can't choose any of the debugger menus and can't
  1005. switch to any other applications or the desktop.
  1006. The only way out is to break into the debugger
  1007. and choose the escape function.
  1008.  
  1009. -- 
  1010. Peter Ferrett
  1011. peter.ferrett@sci.monash.edu.au
  1012.  
  1013. +++++++++++++++++++++++++++
  1014.  
  1015. >From dstone@chem.utoronto.ca (David Stone)
  1016. Date: Mon, 4 Nov 1996 14:08:34 GMT
  1017. Organization: University of Toronto Chemistry
  1018.  
  1019. In article <peter.ferrett-0211961248370001@mts01-modem09.cc.monash.edu.au>,
  1020. peter.ferrett@sci.monash.edu.au (Peter Ferrett) wrote:
  1021. > Hi,
  1022. > Just started using Symantec vs. 8 release 5 after having used version
  1023. > 6 and 7 for a few years.  However am having problems with the 
  1024. > debugger.  The debugger wont step into class member functions
  1025. > i.e. wont step into a function like:
  1026. >          class->func();
  1027.  
  1028. Silly question, but is the source file containing the actual code for
  1029. func() (and any superclass source files) flagged for debugging? That
  1030. would give the effect you describe.
  1031.  
  1032. Dave Stone
  1033.  
  1034. ---------------------------
  1035.  
  1036. >From "Robb Andrew Young" <robb@mesonet.omnvax.uoknor.edu>
  1037. Subject: Trouble with making a Netscape Plug-In for Windows
  1038. Date: 25 Oct 96 17:28:30 -0500
  1039. Organization: The University of Oklahoma (USA)
  1040.  
  1041. Hello TechnoRangers,
  1042.  
  1043. I have spent the past week (literally) attempting to get one of Netscape's
  1044. LiveConnect Plug-In SDK for Windows samples to be recognized under Netscape
  1045. 3.0 for Windows 95. I have successfully managed to build the DLL under
  1046. MetroWerks CodeWarrior 10, Symantec C++ version 7.2 for Windows 95, and
  1047. Microsoft Visual C++ 4.0 for Windows. 
  1048.  
  1049. Getting the sample project WinTemplate (which is one of the LiveConnect SDK
  1050. samples) to build is not a problem. The problem occurs when I launch
  1051. NetScape 3.0 for Windows 95 and go to "About Plug-Ins". My plug-in is not
  1052. shown as having been registered.
  1053.  
  1054. Having painstakingly retraced my steps to avoid most stupid mistakes, I'll
  1055. catch you up on my debugging attempts:
  1056.  
  1057.     1. I have verified the resource portion of the DLL to be valid.
  1058.     2. I have specified a MIME type in Netscape 3.0 which matches that of my
  1059. plug-in (not necessary).
  1060.     3. I have tried exporting every symbol in the DLL, although the sample
  1061. only exports the three main functions.
  1062.     
  1063. I get no errors reported and no crashes, just a browser which infuriatingly
  1064. ignores my library. Could someone please recommend a few suggestions? I was
  1065. able to create a plug-in for the Macintosh in minutes, so Windows should
  1066. not take much longer.
  1067.  
  1068. Thanks in advance,
  1069. Robb Andrew Young
  1070. robb@uoknor.edu
  1071.     
  1072.  
  1073.  
  1074.  
  1075. +++++++++++++++++++++++++++
  1076.  
  1077. >From miki@logal.com (Miki Rosin)
  1078. Date: Sun, 27 Oct 1996 16:41:42 +0200
  1079. Organization: Logal Educational Software
  1080.  
  1081. In article <AE96A95B-14389@129.15.41.148>, "Robb Andrew Young"
  1082. <robb@mesonet.omnvax.uoknor.edu> wrote:
  1083.  
  1084. > Hello TechnoRangers,
  1085. > I have spent the past week (literally) attempting to get one of Netscape's
  1086. > LiveConnect Plug-In SDK for Windows samples to be recognized under Netscape
  1087. > 3.0 for Windows 95. I have successfully managed to build the DLL under
  1088. > MetroWerks CodeWarrior 10, Symantec C++ version 7.2 for Windows 95, and
  1089. > Microsoft Visual C++ 4.0 for Windows. 
  1090. > Getting the sample project WinTemplate (which is one of the LiveConnect SDK
  1091. > samples) to build is not a problem. The problem occurs when I launch
  1092. > NetScape 3.0 for Windows 95 and go to "About Plug-Ins". My plug-in is not
  1093. > shown as having been registered.
  1094. > Having painstakingly retraced my steps to avoid most stupid mistakes, I'll
  1095. > catch you up on my debugging attempts:
  1096. >         1. I have verified the resource portion of the DLL to be valid.
  1097. >         2. I have specified a MIME type in Netscape 3.0 which matches
  1098. that of my
  1099. > plug-in (not necessary).
  1100. >         3. I have tried exporting every symbol in the DLL, although the sample
  1101. > only exports the three main functions.
  1102. >         
  1103. > I get no errors reported and no crashes, just a browser which infuriatingly
  1104. > ignores my library. Could someone please recommend a few suggestions? I was
  1105. > able to create a plug-in for the Macintosh in minutes, so Windows should
  1106. > not take much longer.
  1107. > Thanks in advance,
  1108. > Robb Andrew Young
  1109. > robb@uoknor.edu
  1110. >     
  1111.  
  1112. You need  to do few things:
  1113. 1. Add a linker command file which goes like this
  1114.  
  1115. /EXPORT:NP_GetEntryPoints=_NP_GetEntryPoints@4,@1
  1116. /EXPORT:NP_Initialize=_NP_Initialize@4,@2
  1117. /EXPORT:NP_Shutdown=_NP_Shutdown@0,@3
  1118.  
  1119. This file must be in the project folder. Enter its name in the linker prefs
  1120. dialog. Notice that the linker would NOT warn you if something is wrong
  1121. with that file. Also, don't keep this file in an open editor windows while
  1122. linking.
  1123.  
  1124. On the Windows side, check with QuickView (right-click on the DLL)
  1125. that the export table is similar to the one in any working plug-in.
  1126. (the ordinals are 0,1,2 - not what you wrote - but that's fine).
  1127.  
  1128. 2. In the example RC file change the version resource name to 1.
  1129. the symbol there is not defined so the resource comes out with bad name (ID).
  1130.  
  1131. 3. Currently Metrowerks-generated DLL cannot be loaded dynamically
  1132. under WIN95. Use NT. Metrowerks know about this and promised a fix.
  1133.  
  1134. This worked for me, but I wasn't able to debug the plug-in.
  1135. The problem is that netscape.exe and the plug-in must be in different
  1136. directories, and the debugger can't handle that.
  1137.  
  1138. Conclusion: The X86 target is still a 'second class citizen' for Metrowerks,
  1139. and that's a pity. It has great potential for developing cross-platform code
  1140. with common source base, and we all know that the user interface is a 
  1141. LOT better then any Windows-based tool. 
  1142.  
  1143. I think that with a little effort Metrowerks could make this tool really 
  1144. useful. The most important thing is to work with developers which attempt
  1145. building 'real' applications, beyond the standard microsoft examples.
  1146.  
  1147. Miki Rosin
  1148. Logal Educational Software
  1149.  
  1150. +++++++++++++++++++++++++++
  1151.  
  1152. >From hans@comerwell.xs4all.nl (Hans)
  1153. Date: Sat, 2 Nov 1996 17:12:32 GMT
  1154. Organization: Comerwell
  1155.  
  1156. Miki Rosin (miki@logal.com) wrote:
  1157.  
  1158. : This worked for me, but I wasn't able to debug the plug-in.
  1159. : The problem is that netscape.exe and the plug-in must be in different
  1160. : directories, and the debugger can't handle that.
  1161.  
  1162. I had the same problem, but with another debugger (Borland C 4.02)
  1163. and another program/DLL.
  1164.  
  1165. I fixed this by copying the DLL to both directories. Sounds weird but it
  1166. worked fine. I loaded the DLL with the debugger before running the other
  1167. program. 
  1168.  
  1169. Hans
  1170.  
  1171.  
  1172. ---------------------------
  1173.  
  1174. >From Nick Ketter <xtownaud@mindspring.com>
  1175. Subject: Two player game logic.
  1176. Date: Sun, 27 Oct 1996 21:19:32 -0500
  1177. Organization: Crosstown Audio, Inc.
  1178.  
  1179. Hi,
  1180.  I'm working on my first 2 player game, where each player takes a turn
  1181. at the keyboard. I've got all the functions written for all the
  1182. processes but I'm having trouble figuring out how to handle the 2 player
  1183. bit. Specifically how to set up the logic of main() so that 2 different
  1184. processes (Player1's and Player2's) can be going on at different times.
  1185. Could anyone reccomend a book(s) that might cover this sort of thing?
  1186. I've checked the FAQ and got some titles for general game stuff, but
  1187. didn't find anything explicitly covering this topic.
  1188.   Thanks!
  1189.  
  1190. Nick Ketter
  1191. Sr. Eng.
  1192. Crosstown Audio
  1193. Sound for Picture in AtlantaÆ
  1194. Atlanta, Ga.
  1195.  
  1196. +++++++++++++++++++++++++++
  1197.  
  1198. >From matthewf@panix.com (Matthew)
  1199. Date: Mon, 28 Oct 1996 02:48:25 -0500
  1200. Organization: PANIX Public Access Internet and Unix, NYC
  1201.  
  1202. if you mean like a coin op where each player plays their own game - player
  1203. 1 plays until she dies and then player 2 plays his turn (as opposed to
  1204. chess where both players are playing in turns but in the same game) - just
  1205. take every game variable and make it an array of 2.  Have a global which
  1206. stores which player is playing.
  1207.  
  1208. Matthew
  1209.  
  1210.  
  1211.  
  1212. In article <32741832.1093@mindspring.com>, nickketter@aol.com.com wrote:
  1213.  
  1214. >Hi,
  1215. > I'm working on my first 2 player game, where each player takes a turn
  1216. >at the keyboard. I've got all the functions written for all the
  1217. >processes but I'm having trouble figuring out how to handle the 2 player
  1218. >bit. Specifically how to set up the logic of main() so that 2 different
  1219. >processes (Player1's and Player2's) can be going on at different times.
  1220. >Could anyone reccomend a book(s) that might cover this sort of thing?
  1221. >I've checked the FAQ and got some titles for general game stuff, but
  1222. >didn't find anything explicitly covering this topic.
  1223. >  Thanks!
  1224. >
  1225. >Nick Ketter
  1226. >Sr. Eng.
  1227. >Crosstown Audio
  1228. >Sound for Picture in AtlantaÆ
  1229. >Atlanta, Ga.
  1230.  
  1231. +++++++++++++++++++++++++++
  1232.  
  1233. >From anders.backman@macademic.se (Anders Backman)
  1234. Date: Tue, 29 Oct 1996 19:28:25 +0000
  1235. Organization: Macademic
  1236.  
  1237. In article <32741832.1093@mindspring.com>, nickketter@aol.com.com wrote:
  1238.  
  1239. > Specifically how to set up the logic of main() so that 2 different
  1240. > processes (Player1's and Player2's) can be going on at different times.
  1241. > Could anyone reccomend a book(s) that might cover this sort of thing?
  1242.  
  1243. Make two player objects and let them share the mapboard through a static member.
  1244. Give the class a method that handles the player while he sits there and
  1245. when done let the main() switch beteen the two objects.
  1246. I assume C++ or other oop languange.
  1247.  
  1248. +++++++++++++++++++++++++++
  1249.  
  1250. >From UserName <xtownaud@mindspring.com>
  1251. Date: Tue, 29 Oct 1996 18:21:20 -0500
  1252. Organization: MindSpring Enterprises
  1253.  
  1254. Matthew,
  1255.    Thanks for the help. Actually I think it's somewhere in between Chess
  1256. and the other (PacMan?) It's a game where you and another player are
  1257. taking turns searching for the Titanic. Whoever finds it first then gets
  1258. to attempt to recover treasure from the ship. If he spends up to an hour
  1259. retrieving treasure his turn is up and Player 2 can either a.) keep
  1260. searching for the ship, if he hasn't found it b.) start/continue
  1261. recovering "booty", if he has found the Titanic, or  c.) head back to
  1262. port to have his recovered treasure appraised.
  1263.   I started out by wrapping all the functions for the various processes
  1264. (i.e. searching for the titanic, retrieving booty, heading back to port)
  1265. into larger "macro" functions where each macro function handled a
  1266. different combinations of scenarios. e.g., one player is searching while
  1267. the other is recovering, both players are recovering, one player is
  1268. heading back to port while another is still searching, etc... but it
  1269. seems like this was way to cumbersome and that there should be kinder,
  1270. gentler way of going about it. Perhaps I'm wrong?
  1271.   Any other help you can offer is really appreciated.
  1272.   Thanks.
  1273.  
  1274. Nick Ketter
  1275. Sr. Eng.
  1276. Crosstown Audio
  1277. Sound for Picture in AtlantaÆ
  1278. Atlanta, Ga.
  1279.  
  1280. +++++++++++++++++++++++++++
  1281.  
  1282. >From UserName <xtownaud@mindspring.com>
  1283. Date: Tue, 29 Oct 1996 18:24:44 -0500
  1284. Organization: MindSpring Enterprises
  1285.  
  1286. Anders Backman wrote:
  1287. > In article <32741832.1093@mindspring.com>, nickketter@aol.com.com wrote:
  1288. > > Specifically how to set up the logic of main() so that 2 different
  1289. > > processes (Player1's and Player2's) can be going on at different times.
  1290. > > Could anyone reccomend a book(s) that might cover this sort of thing?
  1291. > Make two player objects and let them share the mapboard through a static member.
  1292. > Give the class a method that handles the player while he sits there and
  1293. > when done let the main() switch beteen the two objects.
  1294. > I assume C++ or other oop languange.
  1295.  
  1296.   Oooo, sorry, I forgot to mention this is just ANSI C. Although 
  1297. eventually I'd like to port it to C++. Any help you can give in the C 
  1298. arena is appreciated.
  1299.   Thanks.
  1300.  
  1301. Nick Ketter
  1302. Sr. Engineer
  1303. Crosstown Audio, Inc.
  1304. Sound for Picture in AtlantaÆ
  1305.  
  1306. +++++++++++++++++++++++++++
  1307.  
  1308. >From ntagg@uoguelph.ca (Nathaniel Tagg)
  1309. Date: 30 Oct 1996 18:00:18 GMT
  1310. Organization: University of Guelph
  1311.  
  1312. UserName (xtownaud@mindspring.com) wrote:
  1313. : Anders Backman wrote:
  1314.  
  1315. :   Oooo, sorry, I forgot to mention this is just ANSI C. Although 
  1316. : eventually I'd like to port it to C++. Any help you can give in the C 
  1317. : arena is appreciated.
  1318. :   Thanks.
  1319.  
  1320.     We may be getting away from the subject at hand here, but this 
  1321. approach is sort of silly.  C++ has no more functionality than regular 
  1322. old C; the advantage in using it is that it helps organize your problems 
  1323. in ways that (some people find) are more intuitive.   Write in one or the 
  1324. other: don't bother porting.
  1325.  
  1326. - -N
  1327.  
  1328. --
  1329. Nathaniel Tagg        Physics grad student        University of Guelph
  1330.     "The chances of a neutrino actually hitting something as it 
  1331. travels through all this howling emptiness are roughly comparable to that 
  1332. of dropping a ball bearing at random from a cruising 747 and hitting, 
  1333. say, an egg sandwich."        -- Douglas Adams, _Mostly_Harmless_
  1334.  
  1335. +++++++++++++++++++++++++++
  1336.  
  1337. >From anders.backman@macademic.se (Anders Backman)
  1338. Date: Mon, 04 Nov 1996 16:03:34 +0000
  1339. Organization: Macademic
  1340.  
  1341. I'd make a struct that contains all data required for a player including a
  1342. pointer to the gameboard data structure shared with the other player. Feed
  1343. this struct to a function that handles one of the players and returns when
  1344. the player is done with his move. Then feed the other players struct to
  1345. the function and alternate until draw, win or quit. This presumes the game
  1346. is turnbased which I think you mentioned earlier.
  1347.  
  1348. >         We may be getting away from the subject at hand here, but this 
  1349. > approach is sort of silly.  C++ has no more functionality than regular 
  1350. > old C; the advantage in using it is that it helps organize your problems 
  1351. > in ways that (some people find) are more intuitive.   Write in one or the 
  1352. > other: don't bother porting.
  1353.  
  1354. NO programming language has more functionality than the opcodes the
  1355. processor understand. ALL programming languages tries to help the
  1356. programmer by better organizing the code or blocking out processor
  1357. features that are considered difficult to use properly (such as memory
  1358. management). There's a forum for discussions about the above ilk, I think
  1359. It's called:
  1360.  
  1361. alt.religion.<whatever>
  1362.  
  1363. /Backman
  1364.  
  1365. ---------------------------
  1366.  
  1367. >From yaofei@IDEA.UML.Edu (Fei Yao)
  1368. Subject: Why "MathLib68K (4i-8d).Lib" is needed to call "sin" and "cos"?
  1369. Date: 31 Oct 1996 14:59:04 GMT
  1370. Organization: A poorly-installed InterNetNews site
  1371.  
  1372.  
  1373. Hi: 
  1374.  
  1375. I have a couple of questions I would like to know the answer. I made the following test program (in CW 7) and tried to compile the source code to a 68K machine executable.
  1376.  
  1377. /*******************************/
  1378. #include   <math.h>
  1379.  
  1380. void main(viod)
  1381. {  
  1382.          double x = 0.5;
  1383.          double y;
  1384.          
  1385.          y =sin(x);         
  1386. }
  1387. /*******************************/
  1388.  
  1389. When I try to "Make" the executable, I got the following error:
  1390.  
  1391.  
  1392. 'sin' referenced from 'main' is undefined.
  1393.  
  1394.  
  1395. I had to add file "MathLib68K (4i/8d).Lib" in my project in order to make the executable. So I have these questions:
  1396.  
  1397. 1. Why do I need to have "MathLib68K (4i/8d).Lib"?  why doesn't <math.h> do the job?
  1398.  
  1399. 2. What does "(4i/8d)" in "MathLib68K (4i/8d).Lib" mean? (i = integer? d = double?). There are numerous "MathLib68K" files, with all kinds of "i", "d", "f" and "FA" in the file name. I just don't know what they mean. 
  1400.  
  1401. TIA.
  1402.  
  1403. +++++++++++++++++++++++++++
  1404.  
  1405. >From dougw@ast1.spa.umn.edu (Doug Williams)
  1406. Date: Thu, 31 Oct 1996 12:03:08 -0600
  1407. Organization: U of MN - Astronomy
  1408.  
  1409. In article <55aero$6mf@ulowell.uml.edu>, yaofei@IDEA.UML.Edu (Fei Yao) wrote:
  1410.  
  1411. }/*******************************/
  1412. }#include   <math.h>
  1413. }void main(viod)
  1414. }{  
  1415. }         double x = 0.5;
  1416. }         double y;
  1417. }         
  1418. }         y =sin(x);         
  1419. }}
  1420. }/*******************************/
  1421. }
  1422. }When I try to "Make" the executable, I got the following error:
  1423. }'sin' referenced from 'main' is undefined.
  1424. }
  1425. }I had to add file "MathLib68K (4i/8d).Lib" in my project in order to make
  1426. the executable. So I have these questions:
  1427. }
  1428. }1. Why do I need to have "MathLib68K (4i/8d).Lib"?  why doesn't <math.h>
  1429. do the job?
  1430. }
  1431.  
  1432. <math.h> only defines (or declares) the functions.  Basically, it tells
  1433. the file what kinds of parameters the functions take and return, so
  1434. rudimentary type checking can be performed.  This is standard 'C'
  1435. practice.  On a command line, it is alanogous to using '-lm', which says
  1436. to link in the math library.  The library is where the previously compiled
  1437. code lives.
  1438.  
  1439. }2. What does "(4i/8d)" in "MathLib68K (4i/8d).Lib" mean? (i = integer? d
  1440. = double?). There are numerous "MathLib68K" files, with all kinds of "i",
  1441. "d", "f" and "FA" in the file name. I just don't know what they mean. 
  1442.  
  1443.  
  1444. i = integer 4i ==> 4byte integers
  1445. d = double  8d ==> 8byte doubles
  1446. FA I think shows whether you want the "near" or "far" memory model
  1447. f = ??
  1448.  
  1449. -=[doug]=-
  1450.  
  1451. +++++++++++++++++++++++++++
  1452.  
  1453. >From bomke <edb@discryptic.com>
  1454. Date: Mon, 04 Nov 1996 14:32:06 -0800
  1455. Organization: discryptic designs
  1456.  
  1457. Doug Williams wrote:
  1458. > i = integer 4i ==> 4byte integers
  1459. > d = double  8d ==> 8byte doubles
  1460. > FA I think shows whether you want the "near" or "far" memory model
  1461. > f = ??
  1462.  
  1463. f = floating-point coprocessor (68881) instructions, rather than SANE
  1464. traps
  1465.  
  1466. ---------------------------
  1467.  
  1468. >From P.T.Russell@sussex.ac.uk (Paul Russell)
  1469. Subject: [Q] How to get rid of menu bar ?
  1470. Date: Wed, 30 Oct 1996 10:58:18 +0000
  1471. Organization: Experimental Psychology, Sussex University
  1472.  
  1473. I'm working on an application that needs to work with a completely black
  1474. screen, much like an arcade game might do. Currently, I put up a window
  1475. with a black background and call LMSetMBarHeight(0). This has the desired
  1476. effect in most respects and it even gets rid of the Control Strip, but it
  1477. still leaves an empty menu bar on the main screen. Calling DrawMenuBar()
  1478. after the LMSetMBarHeight(0) doesn't seem to make any difference. What am
  1479. I missing ?...
  1480.  
  1481. //Paul
  1482.  
  1483. -- 
  1484. | Paul Russell               http://www.biols.susx.ac.uk/Home/Paul_Russell |
  1485. | Experimental Psychology                  email: P.T.Russell@sussex.ac.uk |
  1486. | Sussex University, Falmer                       paulr@biols.sussex.ac.uk |
  1487. | Brighton BN1 9QG, England    tel: +44 1273 678639  fax:  +44 1273 678611 |
  1488.  
  1489. +++++++++++++++++++++++++++
  1490.  
  1491. >From jelemans@aurora-net.com (John Elemans)
  1492. Date: Wed, 30 Oct 1996 10:31:09 -0800
  1493. Organization: Online at Wimsey
  1494.  
  1495. There is a hide menu bar command,...seek and ye shall find.
  1496. je
  1497. In article <P.T.Russell-3010961058180001@paulr-ppc.biols.susx.ac.uk>,
  1498. P.T.Russell@sussex.ac.uk (Paul Russell) wrote:
  1499.  
  1500. > I'm working on an application that needs to work with a completely black
  1501. > screen, much like an arcade game might do. Currently, I put up a window
  1502. > with a black background and call LMSetMBarHeight(0). This has the desired
  1503. > effect in most respects and it even gets rid of the Control Strip, but it
  1504. > still leaves an empty menu bar on the main screen. Calling DrawMenuBar()
  1505. > after the LMSetMBarHeight(0) doesn't seem to make any difference. What am
  1506. > I missing ?...
  1507. > //Paul
  1508. > -- 
  1509. > | Paul Russell               http://www.biols.susx.ac.uk/Home/Paul_Russell |
  1510. > | Experimental Psychology                  email: P.T.Russell@sussex.ac.uk |
  1511. > | Sussex University, Falmer                       paulr@biols.sussex.ac.uk |
  1512. > | Brighton BN1 9QG, England    tel: +44 1273 678639  fax:  +44 1273 678611 |
  1513.  
  1514. -- 
  1515. - -------------------------gwielo-----------------------
  1516. - ----------------------(devil dude)--------------------
  1517.  
  1518. +++++++++++++++++++++++++++
  1519.  
  1520. >From ajl@ecs.soton.ac.uk (Andy Lewis)
  1521. Date: Fri, 01 Nov 1996 03:22:59 +0100
  1522. Organization: University of Southampton, Dept of Electronics & Computer Science
  1523.  
  1524. In article <P.T.Russell-3010961058180001@paulr-ppc.biols.susx.ac.uk>,
  1525. P.T.Russell@sussex.ac.uk (Paul Russell) wrote:
  1526.  
  1527. > I'm working on an application that needs to work with a completely black
  1528. > screen, much like an arcade game might do. Currently, I put up a window
  1529. > with a black background and call LMSetMBarHeight(0). This has the desired
  1530. > effect in most respects and it even gets rid of the Control Strip, but it
  1531. > still leaves an empty menu bar on the main screen. Calling DrawMenuBar()
  1532. > after the LMSetMBarHeight(0) doesn't seem to make any difference. What am
  1533. > I missing ?...
  1534. >
  1535. The other thing you need to do is expand the window's visRgn & clipRgn so
  1536. that they include the area that the menu bar used to cover.
  1537.  
  1538.  
  1539. Andy
  1540.  
  1541. -- 
  1542. Andy Lewis (ajl@ecs.soton.ac.uk)
  1543.  
  1544. +++++++++++++++++++++++++++
  1545.  
  1546. >From BHuey@worldnet.att.net (Hugh Johnson)
  1547. Date: Fri, 01 Nov 1996 12:02:06 -0500
  1548. Organization: AT&T WorldNet Services
  1549.  
  1550. In article <P.T.Russell-3010961058180001@paulr-ppc.biols.susx.ac.uk>,
  1551. P.T.Russell@sussex.ac.uk (Paul Russell) wrote:
  1552.  
  1553. > I'm working on an application that needs to work with a completely black
  1554. > screen, much like an arcade game might do. Currently, I put up a window
  1555. > with a black background and call LMSetMBarHeight(0). This has the desired
  1556. > effect in most respects and it even gets rid of the Control Strip, but it
  1557. > still leaves an empty menu bar on the main screen. Calling DrawMenuBar()
  1558. > after the LMSetMBarHeight(0) doesn't seem to make any difference. What am
  1559. > I missing ?...
  1560.  
  1561.  
  1562.  
  1563. Here's what I've used. I wrote it when I was just learning, so it's
  1564. probably a bit over-cautious, and you could probably change it to a void
  1565. func and forget the OSErr. 
  1566.  
  1567.  
  1568. OSErr ToggleMenuBar( void )
  1569. {
  1570.    static short sysMBarHeight = 0;
  1571.    short curMBarHeight;
  1572.    Rect mBarRect;
  1573.    RgnHandle dTop, mBarRgn;
  1574.    
  1575.    curMBarHeight = LMGetMBarHeight();
  1576.    if( curMBarHeight )
  1577.       sysMBarHeight = curMBarHeight;
  1578.    else if( !sysMBarHeight )
  1579.       return -1;
  1580.    dSetRect( mBarRect, 0, 0, qd.screenBits.bounds.right, sysMBarHeight );
  1581.    mBarRgn = NewRgn();
  1582.    RectRgn( mBarRgn, &mBarRect );
  1583.    dTop = LMGetGrayRgn();
  1584.    if( curMBarHeight ){
  1585.       LMSetMBarHeight( 0 );   // make the Menu Bar's height zero
  1586.       UnionRgn( dTop, mBarRgn, dTop ); // tell the desktop it covers the MBar
  1587.       PaintOne( nil, mBarRgn );  // redraw desktop
  1588.    }
  1589.    else{
  1590.       LMSetMBarHeight( sysMBarHeight );
  1591.       DiffRgn( dTop, mBarRgn, dTop ); // remove the menu bar from the desktop
  1592.       LMSetGrayRgn( dTop );
  1593.       DrawMenuBar();
  1594.    }
  1595.    DisposeRgn( mBarRgn );
  1596.    return noErr;
  1597. }
  1598.  
  1599. -- 
  1600. The universe is a figment of it's own imagination.
  1601.  
  1602. +++++++++++++++++++++++++++
  1603.  
  1604. >From J.Tetley@garden.gate.leeds.ac.uk
  1605. Date: Wed, 30 Oct 1996 15:10:54 +0000 (GMT)
  1606. Organization: University of Leeds
  1607.  
  1608. > Calling DrawMenuBar() after the LMSetMBarHeight(0) doesn't seem to 
  1609. > make any difference. What am I missing ?...
  1610.  
  1611. You probably need to add the menu bar's region to the GrayRgn. QuickDraw
  1612. clips to the GrayRgn.
  1613.  
  1614. There are many code snippets to show how this is done. You should restore
  1615. the GrayRgn and menu bar whenever any other program need to draw in 
  1616. either, including the case when your program crashes.
  1617.  
  1618.  
  1619. Ben.
  1620.  
  1621. +++++++++++++++++++++++++++
  1622.  
  1623. >From ajmas@worldnet.fr (Andre-John Mas)
  1624. Date: Mon, 4 Nov 1996 23:13:38 +0100
  1625. Organization: SCT / Worldnet - Internet Provider & Information Exchange - Paris, France
  1626.  
  1627. I am not answering the question, but didn't wasn't Apple going add some
  1628. special functions so that the programmer wouldn't have to play around
  1629. with system variables?
  1630.  
  1631. If anyone know whether this is the case, I would like to know.
  1632.  
  1633. Thanks
  1634.  
  1635. Andre-John
  1636.  
  1637. --
  1638. >------------------------------  ,,,, --------------------------------<
  1639.           Andre-John MAS         - -     Smail: 821, Chemin du Riou   
  1640.    Email : ajmas@worldnet.fr      L        06140 Vence, France      
  1641. >------------------------------   -   --------------------------------<
  1642.  Tel/Fax  : (00)(33)0493.24.64.90     http://myweb.worldnet.fr/~ajmas/
  1643.  
  1644. ---------------------------
  1645.  
  1646. >From xhien@nordnet.fr (Xavier)
  1647. Subject: a little problem after using STACKER 1.0
  1648. Date: 2 Nov 1996 18:00:38 GMT
  1649. Organization: le guide des BPM
  1650.  
  1651. is somebody can help me?
  1652.  
  1653. i have a problem with my syquest.
  1654.  
  1655. using a 44M0 cartridge, i would double the capacity so i used STACKER 1.0
  1656.  
  1657. but now i can't find my cartridge on my screen !?
  1658.  
  1659. can you help me?
  1660.  
  1661. thanks
  1662.  
  1663. e-mail me :xhien@nordnet.fr
  1664.  
  1665. xavier
  1666.  
  1667. +++++++++++++++++++++++++++
  1668.  
  1669. >From nevin@CS.Arizona.EDU (Nevin ":-]" Liber)
  1670. Date: Sat, 02 Nov 1996 23:53:43 -0700
  1671. Organization: University of Arizona CS Department, Tucson "It's A *DRY* Heat!" Arizona
  1672.  
  1673. In article <xhien-0211961757430001@port11.nordnet.fr>, xhien@nordnet.fr
  1674. (Xavier) wrote:
  1675.  
  1676.  
  1677. > using a 44M0 cartridge, i would double the capacity so i used STACKER 1.0
  1678. > but now i can't find my cartridge on my screen !?
  1679.  
  1680. As it should say in your manual, you need to install the "Stacker
  1681. Removeable Extension", which is part of your original distribution disks.
  1682. -- 
  1683.  Nevin ":-)" Liber        <mailto:nevin@CS.Arizona.EDU>        (520) 293-2799
  1684.                           <http://www.cs.arizona.edu/people/nevin/>
  1685.  
  1686. +++++++++++++++++++++++++++
  1687.  
  1688. >From jstiles@uclink4.berkeley.edu (John Stiles)
  1689. Date: Sun, 03 Nov 1996 20:00:58 -0800
  1690. Organization: University of California, Berkeley
  1691.  
  1692.  
  1693. > > using a 44M0 cartridge, i would double the capacity so i used STACKER 1.0
  1694. > > but now i can't find my cartridge on my screen !? 
  1695. > As it should say in your manual, you need to install the "Stacker
  1696. > Removeable Extension", which is part of your original distribution disks.
  1697.  
  1698. If you boot with the cartridge in the drive, sometimes you can mount the
  1699. cartridge even without the extension. This comes in handy for me, because
  1700. I no longer use Stacker but one or two of my Zip disks still have it
  1701. installed (I can't remove it without copying all of the files off, and I'm
  1702. too lazy to bother).
  1703.  
  1704. *Stiles
  1705.  
  1706. ---------------------------
  1707.  
  1708. >From Daniel Blumenthal <stark@star.net>
  1709. Subject: assembly choices
  1710. Date: Tue, 29 Oct 1996 16:56:49 -0500
  1711. Organization: StarNet
  1712.  
  1713. i'm just getting started on powerpc asm, and (this seems pretty trivial)
  1714. was wondering what the generally accepted method of moving a value from
  1715. one register to another was...
  1716.  
  1717. is it:
  1718.     addze    r3,r4
  1719. or:
  1720.     ori        r3,r4,0
  1721. or is there some other exciting command i have missed?
  1722.  
  1723. another question:  how does one load 0xFFFFFFFFFFFFFFFF into a floating
  1724. point register?
  1725.  
  1726. thanks!
  1727.  
  1728. daniel
  1729.  
  1730. +++++++++++++++++++++++++++
  1731.  
  1732. >From Ed Wynne <arwyn@best.com>
  1733. Date: 30 Oct 1996 07:05:23 GMT
  1734. Organization: EdFund
  1735.  
  1736. In article <32767DA1.2C8@star.net> Daniel Blumenthal, stark@star.net
  1737. writes:
  1738. >i'm just getting started on powerpc asm, and (this seems pretty trivial)
  1739. >was wondering what the generally accepted method of moving a value from
  1740. >one register to another was...
  1741. >
  1742. >is it:
  1743. >    addze    r3,r4
  1744. >or:
  1745. >    ori        r3,r4,0
  1746. >or is there some other exciting command i have missed?
  1747.  
  1748. You can use the extended mnenomic
  1749.  
  1750. mr    rDst,rSrc
  1751.  
  1752. but that is just another form of ori, it makes the writing
  1753. of PPC asm a little nicer for some people.
  1754.  
  1755. >another question:  how does one load 0xFFFFFFFFFFFFFFFF into a floating
  1756. >point register?
  1757. >
  1758.  
  1759. li    r0,-1
  1760. stw    r0,-4(sp)
  1761. stw    r0,-8(sp)
  1762. lfd    fp0,-8(sp)
  1763.  
  1764. -Ed
  1765.  
  1766. +++++++++++++++++++++++++++
  1767.  
  1768. >From jmunkki@alpha.hut.fi (Juri Munkki)
  1769. Date: 1 Nov 1996 08:07:57 GMT
  1770. Organization: Helsinki University of Technology
  1771.  
  1772. In article <556unj$q36@nntp1.best.com> Ed Wynne <arwyn@best.com> writes:
  1773. >li    r0,-1
  1774. >stw    r0,-4(sp)
  1775. >stw    r0,-8(sp)
  1776. >lfd    fp0,-8(sp)
  1777.  
  1778. Of course you could do this with a global variable, which is how the
  1779. C compilers tend to do stuff like this. That way you could do it with
  1780. just two instructions (since the rTOC is a table of pointers to actual
  1781. data instead of working like A5), but it involves reading from rather
  1782. unusual locations from memory and might not hit the cache. I'm not
  1783. experienced enough to say which one is faster...the above approach
  1784. takes less space though.
  1785.  
  1786. Do any of the C compilers allow for an rTOC that points to the actual
  1787. data (and thus has a 32K data limit)? As most Mac programs already work
  1788. within this limit, access to globals might be faster if it wasn't indirect.
  1789.  
  1790. -- 
  1791. Juri Munkki jmunkki@iki.fi        Life is easy when polygons are cheap.
  1792. http://www.iki.fi/jmunkki           Windsurfing: Faster than the wind.
  1793.  
  1794. +++++++++++++++++++++++++++
  1795.  
  1796. >From Maf Vosburgh <maf@mmcorp.com>
  1797. Date: 30 Oct 1996 18:44:32 GMT
  1798. Organization: MultiMedia Corporation
  1799.  
  1800. When I can't work out how to do something in a new assembly language I
  1801. find it is very useful to write an equivalent snippet of C, compile it
  1802. and dissasemble it. 
  1803. For instance if you want to see how to load a floating point register
  1804. with a value, just write something like this -
  1805.  
  1806. void Test (void)
  1807. {
  1808.     float    d = 1.7;
  1809.     
  1810. }
  1811.  
  1812. and see what the compiler spits out.
  1813.  
  1814.  
  1815.  
  1816. Maf
  1817.  
  1818. +++++++++++++++++++++++++++
  1819.  
  1820. >From rang@trillium.adaptec.com (Anton Rang)
  1821. Date: Fri, 01 Nov 1996 16:26:39 -0600
  1822. Organization: Trillium Research, an Adaptec company
  1823.  
  1824. In article <55cb4t$6ul@nntp.hut.fi>, jmunkki@alpha.hut.fi (Juri Munkki) wrote:
  1825. > Do any of the C compilers allow for an rTOC that points to the actual
  1826. > data (and thus has a 32K data limit)? As most Mac programs already work
  1827. > within this limit, access to globals might be faster if it wasn't indirect.
  1828.  
  1829.   CodeWarrior will do this by default for data structures which are four
  1830. bytes or smaller in size.  (The disassembled code looks like a read from
  1831. the RTOC, but the linker munges it into an add, so "lwz r0, gumby(RTOC)"
  1832. becomes just "add r0, RTOC, gumby" if gumby fits within four bytes.)
  1833.  
  1834.   Anton
  1835.  
  1836. +++++++++++++++++++++++++++
  1837.  
  1838. >From Chelly Green <chelly@eden.com>
  1839. Date: Sat, 02 Nov 1996 10:48:10 -0600
  1840. Organization: -
  1841.  
  1842. Juri Munkki wrote:
  1843. > In article <556unj$q36@nntp1.best.com> Ed Wynne <arwyn@best.com> writes:
  1844. > >li     r0,-1
  1845. > >stw    r0,-4(sp)
  1846. > >stw    r0,-8(sp)
  1847. > >lfd    fp0,-8(sp)
  1848. > Of course you could do this with a global variable, which is how the
  1849. > C compilers tend to do stuff like this. That way you could do it with
  1850. > just two instructions (since the rTOC is a table of pointers to actual
  1851. > data instead of working like A5), but it involves reading from rather
  1852. > unusual locations from memory and might not hit the cache. I'm not
  1853. > experienced enough to say which one is faster...the above approach
  1854. > takes less space though.
  1855. > Do any of the C compilers allow for an rTOC that points to the actual
  1856. > data (and thus has a 32K data limit)? As most Mac programs already work
  1857. > within this limit, access to globals might be faster if it wasn't indirect.
  1858.  
  1859. I believe Code Warrior has an option to do this, and it is usually on.
  1860.  
  1861. Also, it would take less space if the data were stored globally. The
  1862. above is 4 words. Storing the data globally would take 2 words, and 1
  1863. word to load it. 1 word less.
  1864.  
  1865. Of course, the question wasn't about efficiency, but just how to do it
  1866. in assembly. The response about seeing what the compiler did was best.
  1867. -- 
  1868. Chelly Green | chelly@eden.com | C++ - http://www.eden.com/~chelly
  1869.  
  1870.  
  1871.  
  1872. ---------------------------
  1873.  
  1874. >From mkennedy@digex.net
  1875. Subject: clock precision
  1876. Date: 26 Oct 1996 05:51:35 GMT
  1877. Organization: DIGEX
  1878.  
  1879.    I'm interested in timing some of algorithms I've written.  Using the
  1880. clock() and other time functions from time.h, I've only been able to get
  1881. resolution as high as one second from the return values of these calls. 
  1882. Is this the highest Mac time resolution?  Or is there a function I can use
  1883. to get maybe 7 decimal places or so?  I'm using a Power Mac 8100/110.  Any
  1884. help is greatly appreciated.
  1885.  
  1886. -Matt Kennedy
  1887.  
  1888. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1889. "-It's all a lot of simple tricks ||mkennedy@digex.net
  1890. and nonsense."                    ||Matthew Kennedy
  1891.                 -Han Solo         || Georgetown Univ. Comp Sci undergrad.
  1892. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1893.  
  1894. +++++++++++++++++++++++++++
  1895.  
  1896. >From selengj@pr.erau.edu
  1897. Date: 27 Oct 1996 01:39:12 GMT
  1898. Organization: Embry-Riddle Aeronautical University, WEST
  1899.  
  1900. The easiest method is to just call TickCount(), which gives you the time
  1901. from startup in 60ths of a second. If that's not good enough, you can use
  1902. the extended Time Manager, documented in IM: Processes.
  1903.  
  1904. In article <mkennedy-2610960151580001@mkennedy.digex.net>,
  1905. mkennedy@digex.net wrote:
  1906.  
  1907. >    I'm interested in timing some of algorithms I've written.  Using the
  1908. > clock() and other time functions from time.h, I've only been able to get
  1909. > resolution as high as one second from the return values of these calls. 
  1910. > Is this the highest Mac time resolution?  Or is there a function I can use
  1911. > to get maybe 7 decimal places or so?  I'm using a Power Mac 8100/110.  Any
  1912. > help is greatly appreciated.
  1913. > -Matt Kennedy
  1914. > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1915. > "-It's all a lot of simple tricks ||mkennedy@digex.net
  1916. > and nonsense."                    ||Matthew Kennedy
  1917. >                 -Han Solo         || Georgetown Univ. Comp Sci undergrad.
  1918. > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  1919.  
  1920. -- 
  1921. - --------------------------------------------------------------
  1922. Jared Selengut                             <selengj@pr.erau.edu>
  1923.  
  1924. Let us be happy if, in this grey world that is ours, we can
  1925. accumulate a few parcels of truth, experience a few fragments of
  1926. satisfaction. (Pierre Vidal-Naquet)
  1927.  
  1928. +++++++++++++++++++++++++++
  1929.  
  1930. >From darth@zfn.uni-bremen.de (Jochen Lippert)
  1931. Date: Tue, 29 Oct 1996 11:36:32 +0100
  1932. Organization: University of  Bremen
  1933.  
  1934. In article <gchapman-2810961145180001@anise.irus.rri.uwo.ca>,
  1935. gchapman@irus.rri.uwo.ca (Greg Chapman) wrote:
  1936.  
  1937. > Using the Milliseconds() call, you can get measurements down to, well, 1
  1938. > millisecond on the Mac.
  1939.  
  1940. Wasn't that Microseconds()??
  1941.  
  1942. Jochen Lippert
  1943.  
  1944. darth@zfn.uni-bremen.de
  1945.  
  1946. +++++++++++++++++++++++++++
  1947.  
  1948. >From gchapman@irus.rri.uwo.ca (Greg Chapman)
  1949. Date: Mon, 28 Oct 1996 11:45:18 -0500
  1950. Organization: Robarts Research Institute
  1951.  
  1952. In article <mkennedy-2610960151580001@mkennedy.digex.net>,
  1953. mkennedy@digex.net wrote:
  1954.  
  1955. >    I'm interested in timing some of algorithms I've written.  Using the
  1956. > clock() and other time functions from time.h, I've only been able to get
  1957. > resolution as high as one second from the return values of these calls. 
  1958. > Is this the highest Mac time resolution?  Or is there a function I can use
  1959. > to get maybe 7 decimal places or so?  I'm using a Power Mac 8100/110.  Any
  1960. > help is greatly appreciated.
  1961.  
  1962. Using the Milliseconds() call, you can get measurements down to, well, 1
  1963. millisecond on the Mac.
  1964.  
  1965. -- 
  1966. Greg Chapman
  1967. Mac Developer - Robarts Research Institute
  1968. Imaging Research Labs
  1969. - -
  1970. "You! Out of the gene pool!"
  1971.  
  1972. +++++++++++++++++++++++++++
  1973.  
  1974. >From "Roger Pantos" <rpantos@apple.com>
  1975. Date: 2 Nov 96 00:02:06 -0800
  1976. Organization: Apple Computer, Inc.
  1977.  
  1978. >In article
  1979. <mkennedy-2610960151580001@mkennedy.digex.net>,>mkennedy@digex.net >wrote:
  1980. >> Is this the highest Mac time resolution?  Or is there a function I can
  1981. >use
  1982. >> to get maybe 7 decimal places or so?  I'm using a Power Mac 8100/110. 
  1983. >
  1984. >Using the Milliseconds() call, you can get measurements down to, well, 1
  1985. >millisecond on the Mac.
  1986.  
  1987. And, of course, if you're on a PCI Mac you can call 
  1988.  
  1989.     Nanoseconds   foo = AbsoluteToNanoseconds( UpTime());
  1990.  
  1991.  
  1992. --
  1993. Roger Pantos                   rpantos@apple.com
  1994. Performance Tools Engineer.
  1995.  
  1996.  
  1997.  
  1998. ---------------------------
  1999.  
  2000. >From raterwil@ucla.edu (Robert Terwilliger)
  2001. Subject: displaying pixmap on screen
  2002. Date: 1 Nov 1996 21:05:53 GMT
  2003. Organization: UCLA Division of Brain Mapping
  2004.  
  2005. I am trying to display a pixmap on a mac screen.  I can't get it to look
  2006. the way I want it to.  It is a 128x128 pixel 8-bit grayscale MRI image
  2007. which appears fine when I display it on NIH image but I cannot get it to
  2008. display on my program.  Does anyone have experience reading in raw data
  2009. files (not picts, tiffs or other preformatted files) and displaying them
  2010. on the screen?
  2011.  
  2012. I do not know if I need to convert the image to 48-bit RGB before
  2013. displaying or what.  If anyone can help me, please let me know.  I can
  2014. forward you my code and explain exactly where the problem is.
  2015.  
  2016. Also, if there is a more appropriate newsgroup on which to post this
  2017. message, I would appreciate any information.
  2018.  
  2019. Thank you.
  2020.  
  2021. Robert Terwilliger
  2022.  
  2023. +++++++++++++++++++++++++++
  2024.  
  2025. >From doverton@iglou.com (Dave Overton)
  2026. Date: Sat, 2 Nov 1996 22:37:43 GMT
  2027. Organization: IgLou Internet Services (1-800-436-4456)
  2028.  
  2029. Robert,
  2030. Are you using an 8-bit grey scale window? If you are displaying it in an
  2031. 8-bit color window, there aren't many grays available.
  2032. Dave Overton
  2033.  
  2034.  
  2035. In article <raterwil-0111961307210001@pawnx.loni.ucla.edu>,
  2036. raterwil@ucla.edu (Robert Terwilliger) wrote:
  2037.  
  2038. > I am trying to display a pixmap on a mac screen.  I can't get it to look
  2039. > the way I want it to.  It is a 128x128 pixel 8-bit grayscale MRI image
  2040. > which appears fine when I display it on NIH image but I cannot get it to
  2041. > display on my program.  Does anyone have experience reading in raw data
  2042. > files (not picts, tiffs or other preformatted files) and displaying them
  2043. > on the screen?
  2044. > I do not know if I need to convert the image to 48-bit RGB before
  2045. > displaying or what.  If anyone can help me, please let me know.  I can
  2046. > forward you my code and explain exactly where the problem is.
  2047. > Also, if there is a more appropriate newsgroup on which to post this
  2048. > message, I would appreciate any information.
  2049. > Thank you.
  2050. > Robert Terwilliger
  2051.  
  2052. +++++++++++++++++++++++++++
  2053.  
  2054. >From smfr@santafe.edu (Simon Fraser)
  2055. Date: 2 Nov 1996 07:32:26 GMT
  2056. Organization: Santa Fe Institute
  2057.  
  2058. In article <raterwil-0111961307210001@pawnx.loni.ucla.edu>,
  2059. raterwil@ucla.edu (Robert Terwilliger) wrote:
  2060.  
  2061. >I am trying to display a pixmap on a mac screen.  I can't get it to look
  2062. >the way I want it to.  It is a 128x128 pixel 8-bit grayscale MRI image
  2063. >which appears fine when I display it on NIH image but I cannot get it to
  2064. >display on my program.  Does anyone have experience reading in raw data
  2065. >files (not picts, tiffs or other preformatted files) and displaying them
  2066. >on the screen?
  2067. >
  2068. >I do not know if I need to convert the image to 48-bit RGB before
  2069. >displaying or what.  If anyone can help me, please let me know.  I can
  2070. >forward you my code and explain exactly where the problem is.
  2071. >
  2072. >Also, if there is a more appropriate newsgroup on which to post this
  2073. >message, I would appreciate any information.
  2074.  
  2075. Your best option is probably to create an 8-bit offscreen GWorld,
  2076. and supply a grayscale palette like this:
  2077.  
  2078.  colorTable = GetCTable(kColorTableID);      //Get color table from a
  2079. 'clut' resource
  2080.  err = NewGWorld(&newoffscreen, 8, &offscreenRect, colorTable, nil, 0);
  2081.  
  2082. You will then need to get the image into the GWorld; either DrawPicture,
  2083. or some direct-drawing into the GWorld should work. Then just CopuBits
  2084. onto the screen, which handles the depth translations and color mapping
  2085. for you.
  2086.  
  2087. Simon
  2088.  
  2089. ________________________________________________________________
  2090. Simon Fraser                                  Santa Fe Institute
  2091. smfr@santafe.edu                             1399 Hyde Park Road
  2092. http://www.santafe.edu/~smfr/                 Santa Fe, NM 87501
  2093.  
  2094. ---------------------------
  2095.  
  2096. >From fieldd@cuug.ab.ca (Dan Field)
  2097. Subject: parameter block info for cdrom and audio chip
  2098. Date: Thu, 31 Oct 1996 09:45:03 -0700
  2099. Organization: Eucart Consulting Inc
  2100.  
  2101.  
  2102. Does anyone have any documentation on the parameter block commands and data that
  2103. are required to control both the cd-rom and the apple sound chip (or is it
  2104. now the
  2105. dsp chip)?
  2106.  
  2107. I've heard rumors about something called a "red book", but can't find any
  2108. further
  2109. info on it.
  2110.  
  2111. MTIA.
  2112.  
  2113.     Dan Field
  2114.     Eucart Consulting Inc
  2115.  
  2116. -- 
  2117. - -----------------------
  2118. Dan Field
  2119. Eucart Consulting Inc
  2120. fieldd@cuug.ab.ca
  2121. (403)239-3958
  2122. - -----------------------
  2123.  
  2124. +++++++++++++++++++++++++++
  2125.  
  2126. >From blob@ricochet.net
  2127. Date: Thu, 31 Oct 1996 19:22:09 -0800
  2128. Organization: (none)
  2129.  
  2130. In article <fieldd-3110960945030001@hp.cuug.ab.ca>, fieldd@cuug.ab.ca (Dan
  2131. Field) wrote:
  2132.  
  2133. > Does anyone have any documentation on the parameter block commands 
  2134. >and data that are required to control both the cd-rom 
  2135.  
  2136. Technote DV 22, CD-ROM Driver Calls at
  2137. <http://devworld.apple.com/dev/technotes/dv/dv_22.html>
  2138.  
  2139. >and the apple sound chip 
  2140.  
  2141. You want Inside Macintosh:Sound
  2142. (<http://devworld.apple.com/dev/techsupport/insidemac/Sound/Sound-2.html>)
  2143. and use the Sound Manager, rather than trying to manipulate any internal
  2144. sound chips.  Internal details vary wildly from machine to machine.
  2145.  
  2146. > I've heard rumors about something called a "red book", but can't find any
  2147. > further info on it.
  2148.  
  2149. It's an ISO standard defining the format of CD-ROMs.  Not particularly
  2150. useful for what you have described; more like a low level description of
  2151. encoding standards, physical standards, etc.
  2152.  
  2153. -- 
  2154. (Pointers to other Mac programming web sites at
  2155. <http://devworld.apple.com/dev/geeks.html>)
  2156.  
  2157. +++++++++++++++++++++++++++
  2158.  
  2159. >From chris-b@cs.auckland.ac.nz (chris-b)
  2160. Date: Mon, 04 Nov 1996 09:30:01 +1300
  2161. Organization: Auckland University HMU
  2162.  
  2163. In article <blob-ya023180003110961922090001@news.ricochet.net>,
  2164. blob@ricochet.net wrote:
  2165.  
  2166. >In article <fieldd-3110960945030001@hp.cuug.ab.ca>, fieldd@cuug.ab.ca (Dan
  2167. >Field) wrote:
  2168. >
  2169. >> I've heard rumors about something called a "red book", but can't find any
  2170. >> further info on it.
  2171. >
  2172. >It's an ISO standard defining the format of CD-ROMs.
  2173.  
  2174. More accurately, it specifies the Audio CD format. There are other
  2175. "colour" books to specify CD-ROM and similar formats.
  2176.  
  2177. >Not particularly
  2178. >useful for what you have described; more like a low level description of
  2179. >encoding standards, physical standards, etc.
  2180.  
  2181. But damn useful if you want to read audio data directly off CD and play
  2182. it. Turns out the audio data is little-endian, so you need to byte reverse
  2183. it before passing it to the Sound Manager.
  2184.  
  2185. Chris B
  2186. - ---------------------------------------------------------------------
  2187. NewZealand:AucklandUniversity:ComputerScience:HyperMediaUnit:ChrisBurns
  2188. Internet: chris-b@cs.auckland.ac.nz
  2189. Phone:    +64 9 373-7599 x8976
  2190. Fax:      +64 9 373-7453                         Async, Therefore I Am.
  2191. - ---------------------------------------------------------------------
  2192.  
  2193. +++++++++++++++++++++++++++
  2194.  
  2195. >From fieldd@cuug.ab.ca (Dan Field)
  2196. Date: Mon, 04 Nov 1996 17:12:05 -0700
  2197. Organization: Eucart Consulting Inc
  2198.  
  2199. In article <blob-ya023180003110961922090001@news.ricochet.net>,
  2200. blob@ricochet.net wrote:
  2201.  
  2202. >In article <fieldd-3110960945030001@hp.cuug.ab.ca>, fieldd@cuug.ab.ca (Dan
  2203. >Field) wrote:
  2204. >
  2205. >> Does anyone have any documentation on the parameter block commands 
  2206. >>and data that are required to control both the cd-rom 
  2207. >
  2208. >Technote DV 22, CD-ROM Driver Calls at
  2209. ><http://devworld.apple.com/dev/technotes/dv/dv_22.html>
  2210. >
  2211.  
  2212. Many thanks for the info about the CD stuff.
  2213.  
  2214. >>and the apple sound chip 
  2215. >
  2216. >You want Inside Macintosh:Sound
  2217. >(<http://devworld.apple.com/dev/techsupport/insidemac/Sound/Sound-2.html>)
  2218. >and use the Sound Manager, rather than trying to manipulate any internal
  2219. >sound chips.  Internal details vary wildly from machine to machine.
  2220. >
  2221.  
  2222. Actually, I *really do* want to talk to the sound chip(s) directly;
  2223. I'm attempting to intercept the data going between the output
  2224. component and the sound chip and do some processing on it.  I can
  2225. do it now via an alternate output component that I've written and
  2226. ship it data back to the sound manager using the "standard" output
  2227. component.  I'd like to avoid the extra overhead of sending it
  2228. back through the sound manager by talking to the sound chip itself.
  2229. I understand the issues regarding the different sound chips; I am
  2230. hoping that the driver interface itself is somewhat hardware independent
  2231. (yeah, I know, I'm a foolish optimist).
  2232.  
  2233.     Dan
  2234.  
  2235.     Dan Field
  2236.     Eucart Consulting Inc.
  2237.  
  2238. -- 
  2239. - -----------------------
  2240. Dan Field
  2241. Eucart Consulting Inc
  2242. fieldd@cuug.ab.ca
  2243. (403)239-3958
  2244. - -----------------------
  2245.  
  2246. ---------------------------
  2247.  
  2248. End of C.S.M.P. Digest
  2249. **********************
  2250.